package JavaSE_Senior;

public class reflex2 {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
        /**
         *
         * 通过反射动态实现方法的调用：
         *
         * 首先获取类对象
         * 需要实现的方法通过接口定义，类对象实现接口，重写方法
         * 调用类对象重写的方法
         *
         * 若需要实现的方法发生变化，只需要改变类对象即可
         * 举例：JDBC
         *
         */

//        Class<?> aClass = Class.forName(args[0]);
        Class<?> aClass = Class.forName("JavaSE_Senior.Student");

        //
        //  Class<?> aClass = Class.forName("JavaSE_Senior.Student1");
        //
        //  public class Student1 implements Person {
        //        public void chiFan() {
        //            System.out.println("Student1");
        //        }
        //

        Person o = (Person) aClass.newInstance();

        o.chiFan();

    }
}
